package com.augurit.gzcgwsp.csshlj.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springside.modules.orm.Page;

import com.augurit.common.base.service.ICrudService;
import com.augurit.common.system.web.auth.form.LoginUserForm;
import com.augurit.gzcgwsp.csshlj.entity.Csshljcz;
import com.augurit.gzcgwsp.csshlj.form.ShljYsForm;
import com.augurit.gzcgwsp.csshlj.web.form.CsshljCzForm;
import com.augurit.gzcgwsp.ssgd.web.form.YwRqSsgdSqbForm;
import com.augurit.wf.bi.web.form.WfBusInstanceTaskForm;

/*
 * 城市生活垃圾处置servicde
 */
public interface ICsshljCzService extends ICrudService<CsshljCzForm, Long> {

	/**
	 * 保存并返回流程实例
	 * @param request
	 * @param ysl
	 * @param sqdw
	 * @param username
	 * @return
	 */
	public WfBusInstanceTaskForm wfBusSave(HttpServletRequest request,CsshljCzForm form,Map map,String username);

	public void changeYslState(Long id, Long state,String yslThyy);
	
	public List<Csshljcz> getByAcceptNo(String acceptNo);
	

	/**
	 * 查询form
	 * @param id
	 * @param tablename
	 * @return
	 */
	public CsshljCzForm getForm(Long id,String tablename);
	/**
	 * 保存证书
	 * @param form
	 * @param tablename
	 */
	public void doUpdate(CsshljCzForm form,String tablename);
	/**
     * sql查询出处置表的集合
     * @param id
     * @return
     */
    public List getListById(Long id);

    /**
     * 保存副本
     * @param form
     * @param string
     */
	public void doUpdateFb(CsshljCzForm form, String tablename);

	/**
	 * 导入前检查数据
	 * @param templateCode 业务类型
	 * @param filename 文件名称
	 * @param id 案件id
	 * @param qyid 企业id
	 * @return
	 */
	public boolean checkData(String templateCode,String filename, Long id,Long qyid);

	/**
	 * 导入数据
	 * @param form
	 * @param map
	 * @return
	 */
	public String importData(CsshljCzForm form, Map map);

	/**
	 * 获取申请表文件路径
	 * @param map
	 * @return
	 */
	public String getSqbFilePath(Map map);

	/**
	 * 打印写数据
	 * @param form
	 * @param context
	 * @param inpath
	 * @return
	 */
	public String writeXkzData(CsshljCzForm form, String context,String inpath);

	/**
	 * 打印写入数据
	 * @param form
	 * @param context
	 * @param inpath
	 * @return
	 */
	public String writeFbData(CsshljCzForm form, String context, String inpath);
	
	/**
	 * 获取收件通知书里面的材料列表
	 * @param form
	 * @return
	 */
	public CsshljCzForm getSjtzsField(CsshljCzForm form);
	
	/**
	 * 生成证书编号
	 * @param tablename
	 * @return
	 */
	public String createZsbh(Map map,Long id);

	/**
	 * 重新设置属性，主要是将属性为空的设置成字符串
	 * @param form
	 */
	public void reSetForm(Object form);

	/**
	 * 保存信息到企业表
	 * @param sqdw
	 * @param map
	 */
	public Long saveEnterpriseInfo(String sqdw, Map map);
	
	
	public String checkEnterprise(String qyname, String tempcode);
	
	
	//自动启动流程
	public void autoStartProc(CsshljCzForm form,String templateCode);
	

	public void toListDdData(Page page,Map map);
	
	public String exportExcel(Map map);

	/**
	 * 办结时修改证书有效时间
	 * @param map
	 */
	public void updateData(Map map);
	
	public void endSave(Long id);
	/**
	 * 根据ID获得对象实体
	 * @param id
	 * @return
	 */  
	public Csshljcz getEntity(Long id);
	/**
     * 保存对象实体
     * @param csshljcz
     */     
    public void saveEntity(Csshljcz csshljcz);
    
    /**
     * 保存政务中心的统一查询编号和密码
     * @param id
     * @param serialNo
     * @param password
     */
    public void saveSerialNoAndPassword(Long id,String serialNo,String password);
    
    /**
     * 根据受理号查出企业编号
     * @param acceptNo
     * @return
     */
    public String getQyidByAcceptNo(String acceptNo);

    /**
     * 保存延期和告知
     * @param map
     */
	public void saveOherInfo(Map map);

	/**
	 * 获取延期天数
	 * @param id
	 * @return
	 */
	public String getYqts(Long id);
	public String wfBusYslTuih(CsshljCzForm form,LoginUserForm loginUser) throws Exception;

	public void updateAcceptNo(Csshljcz form);

}
